package com.cmccgz.baselibrary.utils;

import java.util.ArrayList;
import java.util.HashMap;
import java.util.Iterator;
import java.util.List;
import java.util.Map.Entry;

import org.json.JSONArray;
import org.json.JSONException;
import org.json.JSONObject;

public class JsonParse
{
	public static final String TAG = "JsonParse";
//	private static String getString( JSONObject obj, String field )
//	{
//		String str = "";
//		try
//		{
//			str = obj.getString( field );
//			if ( !StringUtil.isEmpty( str )
//					&& ( str.equals( "null" ) || str.equals( "NULL" ) ) )
//				str = "";
//		} catch ( Exception e )
//		{
//			LogUtils.create( e);
//		}
//		return str;
//	}
	
//	public static ArrayList<SimplePhoneInfo> parseToSimplePhoneInfo(String jsonStr)
//	{
//		ArrayList<SimplePhoneInfo> datas = null;
//		
//		if(StringUtil.isEmpty( jsonStr ))
//			return datas;
//		
//		try
//		{
//			JSONArray array = new JSONArray( jsonStr );
//			if ( array != null && array.length() > 0 )
//			{
//				int len = array.length();
//				datas = new ArrayList<SimplePhoneInfo>(len*110/100+5);
//				for(int i = 0; i < len; i++)
//				{
//					JSONObject obj = array.getJSONObject( i );
//					SimplePhoneInfo spi = new SimplePhoneInfo();
//					spi.Name = getString( obj, "Name" );
//					spi.Number = getString( obj, "Number" );
//					datas.add( spi );
//				}
//			}
//		} catch ( Exception e )
//		{
//			e.printStackTrace();
//		}
//		return datas;
//	}
	
	public static String parseToSimplePhoneList(HashMap<String, String> checkMap) {
		JSONArray arrayobj = new JSONArray();
		try {
			Iterator<Entry<String, String>> it = checkMap.entrySet().iterator();
			while(it.hasNext()) {
				Entry<String,String> entry = it.next();
				JSONObject obj = new JSONObject();
				obj.put( "Name", entry.getValue() );
				obj.put( "Number", entry.getKey() );
				arrayobj.put( obj );
			}
		} catch ( Exception e ){
			e.printStackTrace();
		}
		return arrayobj.toString();
	}
	
//	public static ArrayList<Contact> parseContactInfo(String jsonStr)
//	{
//		ArrayList<Contact> datas = null;
//		
//		if(StringUtil.isEmpty( jsonStr ))
//			return datas;
//		
//		try
//		{
//			JSONArray array = new JSONArray( jsonStr );
//			if ( array != null && array.length() > 0 )
//			{
//				int len = array.length();
//				datas = new ArrayList<Contact>(len*110/100+5);
//				for(int i = 0; i < len; i++)
//				{
//					JSONObject obj = array.getJSONObject( i );
//					Contact spi = new Contact();
//					spi.setLinkPhone (getString( obj, "Number" ));
//					spi.setDisplayName(getString( obj, "Name" ));
//					datas.add( spi );
//				}
//			}
//		} catch ( Exception e )
//		{
//			e.printStackTrace();
//		}
//		return datas;
//	}
	
	
	/**
	 * 将json转换成已安装客户端 phone 列表 
	 * @param json
	 * @return
	 */
	public static List<String> jsonTOPhoneList(String json){
		List<String> list=new ArrayList<String>();
		try {
			JSONObject obj = new JSONObject(json);
			JSONArray array = obj.optJSONArray("userlist");
			for (int i = 0; i < array.length(); i++) {
				JSONObject itemobj=array.optJSONObject(i);
				list.add(itemobj.optString("phone"));
			}
		} catch (JSONException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
		return list;
		
	}
	
	/**
	 * 获取在线状态 将电话list转换成json
	 * @param phones
	 * @return
	 */
	public static String getOnLinePhoneToJson(List<String> phones){
	 
		JSONObject obj=new JSONObject();
		JSONArray array=new JSONArray();
		try {
			for(String phone : phones){
				JSONObject itemobj=new JSONObject();
				itemobj.put("msisdn", phone);
				//array.put(0, itemobj);	
				array.put(itemobj);
			}
			obj.put("userInfoList", array);
		} catch (JSONException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
		return obj.toString();
	}
	
//	/**
//	 * 解析在线状态 返回结果
//	 * @param json
//	 * @return { “userInfoList”:[ { “msisdn”: “13899990000”, “status”: “0”}, {
//	 *         “msisdn”: “13866660000”, “status”: “1”, “lastLoginTime”:
//	 *         “2014-04-02”} ] }
//	 */
//	public static List<OnLinePhoneModel>  parseOnLineJsonToList(String json){
//		List<OnLinePhoneModel>  list=new ArrayList<OnLinePhoneModel>();
//		try {
//			JSONObject obj=new JSONObject(json);
//			JSONArray array=obj.optJSONArray("userInfoList");
//			for(int i=0;i<array.length();i++){
//				OnLinePhoneModel  model=new OnLinePhoneModel();
//				JSONObject  itemobj=array.optJSONObject(i);
//				model.setPhone(itemobj.optString("msisdn")==null ? "" : itemobj.optString("msisdn"));
//				model.setStatus(itemobj.optString("status")==null ? "" : itemobj.optString("status"));
//				model.setLastLoginTime(itemobj.optString("lastLoginTime")==null ? "" : itemobj.optString("lastLoginTime"));
//				list.add(model);
//			}
//		} catch (JSONException e) {
//			// TODO Auto-generated catch block
//			e.printStackTrace();
//		}
//		return list;
//		
//	}
	
}
